package edu.mercer.sse.bkp;

/**
 * Unchecked Configuration Exception for Backup Application.<p>
 * 
 * Exception encountered during load, parse, retrieval of ini-file or related
 * 	application properties or settings.<p>
 * 
 * Visitor Pattern: accepts visitor for logging this unchecked exception.<p>
 * 
 * @see VisitableLogging
 * 
 * @see BackupErrorLoggingVisitor 
 */

public class BackupSettingsException extends RuntimeException

	implements VisitableLogging<Boolean, 
								BackupErrorLoggingVisitor>

{
	private static final long serialVersionUID = 4900978143707261L;

	
	/**
	 * Create new BackupSettingsException unchecked exception.<p> 
	 */
	
	BackupSettingsException()
	{
		super();
		
	}//constructor


	/**
	 * Create new BackupSettingsException unchecked exception.<p> 
	 * 
	 * @param messageIn - String descriptive message to include when creating
	 * 	exception
	 */
	
	BackupSettingsException(final String messageIn)
	{
		super(messageIn);
		
	}//constructor
	

	/**
	 * Create new BackupSettingsException unchecked exception.<p> 
	 * 
	 * @param exceptionIn - Exception checked exception for wrapping in this
	 * 	custom unchecked exception 
	 */
	
	BackupSettingsException(final Exception exceptionIn)
	{
		super(exceptionIn);
		
	}//constructor
	

	/**
	 * Create new BackupSettingsException unchecked exception.<p> 
	 * 
	 * @param throwableIn - Throwable for wrapping in this custom unchecked 
	 * 	exception 
	 */
	
	BackupSettingsException(final Throwable throwableIn)
	{
		super(throwableIn);
		
	}//constructor


	/**
	 * Create new BackupSettingsException unchecked exception.<p> 
	 * 
	 * @param errorIn - Error for wrapping in this custom unchecked exception 
	 */
	
	BackupSettingsException(final Error errorIn)
	{
		super(errorIn);
		
	}//constructor

	
	/**
	 * Create new BackupSettingsException unchecked exception.<p>
	 * 
	 * @param errDescription - String descriptive message to include when 
	 *  creating exception 
	 * 
	 * @param errorIn - Throwable for wrapping in this custom unchecked 
	 * 	exception
	 */
	
	BackupSettingsException(final String errDescription, 
							final Throwable errorIn)
	{
		super(errDescription, errorIn);
		
	}//constructor


	@Fulfills("VisitableLogging")
	@Override
	public Boolean accept( final BackupErrorLoggingVisitor visitor ) 
	{
		return visitor.visit( this );
		
	}//method		

	
}//class
